/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package qlvbdq.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import qlvbdq.dconnection.SQLServerConnect;
import qlvbdq.dto.PhieuChiDTO;

/**
 *
 * @author tuan
 */
public class PhieuChiDAO {

    private static final String MaPhieuChi = "MaPC0000";
    private static final int lengthMa = 8;
    
    public PhieuChiDAO() {
    }
    
    public String getNewMaPhieuChi() throws SQLException {
        String MaPC = "";
        int maxMa = 0;
        ResultSet rs = SQLServerConnect.getInstance().getDataFromStore("GetAllPHIEUCHIFromDataBase", null);
        while (rs.next()) {
            int temp = Integer.parseInt( rs.getString("MAPHIEUCHI").substring(lengthMa) );
            if (maxMa < temp) {
                maxMa = temp;
            }
        }
        maxMa ++;
        MaPC = MaPC.concat(MaPhieuChi + maxMa);
        return MaPC;
    }
    
//    public ArrayList<PhieuChiDTO> SearchPhieuChiByRule(PhieuChiDTO phieuChi) throws SQLException {
//        ArrayList<PhieuChiDTO> listphieuChi = new ArrayList<>();
//        Object[] objs = { phieuChi.getMaPhieuChi(), phieuChi.getNgayChi(), phieuChi.getTongTien()};
//        ResultSet result = SQLServerConnect.getInstance().getDataFromStore("GetPhieuChiFromDatabase(?, ?, ?, ?)", objs);
//        PhieuChiDTO phieuchi;
//        while (result.next()) {
//            phieuchi = new PhieuChiDTO(result.getString("MAPHIEUCHI"), 
//                    result.getDate("NGAYCHI"), result.getLong("TONGTIEN"));
//            listphieuChi.add(phieuchi);
//        }
//        return listphieuChi;
//    }
    
    public PhieuChiDTO GetPhieuChiByMaPhieuChi(String MaPhieuChi) throws SQLException {
        Object[] objs = { MaPhieuChi };
        ResultSet result = SQLServerConnect.getInstance().getDataFromStore("GetPHIEUCHIFromDataBase( ? )", objs);
        PhieuChiDTO phieuchi = null;
        while (result.next()) {
            phieuchi = new PhieuChiDTO(result.getString("MAPHIEUCHI"), 
                    result.getDate("NGAYCHI"), result.getLong("TONGTIEN"));
        }
        return phieuchi;
    }
    
    public int UpdatePhieuChi(PhieuChiDTO phieuChi) {
        Object[] objs = { phieuChi.getMaPhieuChi(), phieuChi.getNgayChi(), phieuChi.getTongTien()};
        return SQLServerConnect.getInstance().updateDataToDatabase("UpdatePHIEUCHIFromDataBase(?, ?, ?)", objs);
    }

    public int DeletePhieuChi(PhieuChiDTO phieuChi) {
        Object[] objs = { phieuChi.getMaPhieuChi()};
        return SQLServerConnect.getInstance().updateDataToDatabase("DeletePHIEUCHIFromDataBase(? )", objs);
    }
    
    public int InsertPhieuChi(PhieuChiDTO phieuChi) {
        Object[] objs = { phieuChi.getMaPhieuChi(), phieuChi.getNgayChi(), phieuChi.getTongTien()}; 
        return SQLServerConnect.getInstance().updateDataToDatabase("InsertPHIEUCHIFromDataBase(? ,?, ?)", objs);
    }
}
